The present invention generally relates to encoding computers to perform a specific application. More particularly, the present invention relates to controls for defining an application to perform recognition and/or audible prompting such as a server that generates client side markup enabled with recognition and/or audible prompting.
Small computing devices such as personal information managers (PIM), devices and portable phones are used with ever increasing frequency by people in their day-to-day activities. With the increase in processing power now available for microprocessors used to run these devices, the functionality of these devices are increasing, and in some cases, merging. For instance, many portable phones now can be used to access and browse the Internet as well as can be used to store personal information such as addresses, phone numbers and the like.
In view that these computing devices are being used for browsing the Internet, or are used in other server/client architectures, it is therefore necessary to enter information into the computing device. Unfortunately, due to the desire to keep these devices as small as possible in order that they are easily carried, conventional keyboards having all the letters of the alphabet as isolated buttons are usually not possible due to the limited surface area available on the housings of the computing devices.
To address this problem, there has been increased interest and adoption of using voice or speech to provide and access such information, particularly over a wide area network such as the Internet. Published U.S. patent application, U.S. 2003/0130854, entitled APPLICATION ABSTRACTION WITH DIALOG PURPOSE and U.S. patent application entitled APPLICATION ABSTRACTION WITH DIALOG PURPOSE having Ser. No. 10/426,053, filed Apr. 28, 2003 describe a method and system defining controls for a web server to generate client side markups that include recognition and/or audible prompting.
Each of the controls perform a role in the dialog. For instance, controls can include prompt object used to generate corresponding markup for the client device to present information to the user, or generate markups for the client device to ask a question. An answer control or object generates markup for the client device so that a grammar used for recognition is associated with an input field related to a question that has been asked. If it is unclear whether or not a recognized result is correct, a confirmation mechanism can be activated and generate markup to confirm a recognized result. A command control generates markup that allows the user to provide commands, which are other than the expected answers to a specific question, and thus, allows the user to navigate through the web server application, for example. An application control provides a means to wrap common speech scenarios in one control. A module, when executed such as on a client, creates a dialog to solicit and provide information as a function of the controls.
The module can use a control mechanism that identifies an order for the dialog, for example, an order for asking questions. The controls include activation logic that may activate other controls based on the answer given by the user. In many cases, the controls specify and allow the user to provide extra answers, which are commonly answers to questions yet to be asked, and thereby, cause the system to skip such questions since such answers have already been provided. This type of dialog is referred to as “mixed-initiative” since the system and the user have some control of dialog flow.
The controls, when executed on a computer, generate client side markup for a client in a client/server system. A first set of visual controls have attributes for visual rendering on the client device, while a second set of controls have attributes related to at least one of recognition and audibly prompting. The application control is used to perform a selected task on the client device. The application control has properties for outputting controls of the second set to perform the selected task and associating the outputted controls with the first set of controls.
In short, an application control, allows the application author to rapidly develop an application by using application controls rather than manually coding all the necessary syntax with the first and second set of controls to perform a selected task. The tasks can include obtaining information, e.g. numbers, characters, dates etc., or navigating a table of information. The application that is developed may include various built-in prompts, grammars and dialog flow or generate these features automatically. Use of the application controls saves time and thereby cost in developing the application. However, although the application controls provide helpful building block mechanisms for implementing a recognition based application, the controls are not particularly well suited for a mixed-initiative dialogue where the user provides information that eventually will be required, but does so before such questions are asked. Improved methods or techniques to better handle mixed-initiative dialogue in a convenient manner would thus be helpful.